<?php

$m = Model::getInstance();

$module = $m->get('module');

YuppLoader::load('core.mvc', 'DisplayHelper');

?>
<html>
  <head>
    <!-- TODO: el estilo dependera del layout seleccionado -->
    <style>
      /* Para que el document padre sepa que tamanio darle a la modal, se debe especificar en CSS */
      body {
         /* width: 640px; */
         /* height: 480px; */
         padding: 5px;
      }
    </style>
    
    <?php echo h('js', array('app'=>'cms2', 'name'=>'jquery/jquery-1.5.1.min')); ?>
    <?php echo h('js', array('app'=>'cms2', 'name'=>'jquery/jquery.form-2.84')); ?>
    <script type="text/javascript">
      
      // Funcion que va a llamar el editor cuando termine de cargar (ver config del TinyMCE)
      var htmlinit = function() {

         //parent.modalReady(document); // Notifica para que el parent actualice el tamanio del iframe
         parent.modal.modal('update');
      }
      
      $(document).ready( function() {
        
        
        // Para que actualice el textarea con el contenido del TinyMCE, antes de mandarlo por ajax.
        // Ref: http://maestric.com/doc/javascript/tinymce_jquery_ajax_form
        $('#editForm').bind('form-pre-serialize', function(e) {
            
            tinyMCE.triggerSave();
        });
        
        
        // Submitea el form por ajax
        $('#editForm').ajaxForm({
          
          // Cuando el servidor responde ok, quiero actualizar
          // automaticamente el HTML del modulo sin hacer F5.
          success: function (res, status, response) {
            
            // Quiero el modulo que cambie
             
            // OK!!! esto me da el modulo
            //console.log( parent.document.getElementById('<?php echo $module->getClass().'__'.$module->getId(); ?>') );
             
            // Este es el modulo que cambie en el dom
            // Lo pido ala jQuery
            var module = $('#<?php echo $module->getClass().'__'.$module->getId(); ?>', parent.document);
             
            // Tengo que pedir al servidor el HTML actualizado para este modulo
            // Luego meto el actualizado en el dom, antes del que cambie
            // Luego elimino el modulo viejo del dom para que quede solo el actualizado
            
            $.ajax({
              url: '<?php echo h('url', array('controller'=>'cms', 'action'=>'moduleContent', 'params'=>array('class'=>$module->getClass(), 'id'=>$module->getId(), 'pageId'=>$m->get('pageId'), 'zone'=>$m->get('zone')))); ?>',
              success: function (newModuleContent, status) {
                
                //console.log(newModuleHTML);
                // Actualiza solo el contenido!
                module.children('.moduleContent').html(newModuleContent);


                // TODO: feedback de que hizo todo OK!
                // Estaria bueno tener un lugar de feedback arriba como tiene gmail...
                
                
                // TODO: esto podria ser un metodo 'close modal window' o podria ponerle el metodo
                //       a la modal en su prototype y hacer modal.close()
                // Cierra la ventana modal
                var modal = $('#modal', parent.document); // Selecciona ventana
                /*
                modal.fadeOut('slow');                    // Efecto fadeout
                modal.css('display', 'none');             // Oculto la ventana con CSS
                modal.children('iframe').attr('src', ''); // Borro la pagina cargada en el iframe
                */
                // oneliner...
                modal.fadeOut('slow').css('display', 'none').children('iframe').attr('src', '');
              }
            });
          }
        });
      });
      
    </script>
  </head>
  <body>
    <form id="editForm" method="post" action="<?php echo h('url', array('action'=>'edit')); ?>">
      <input type="hidden" name="id" value="<?php echo $module->getId(); ?>" />
      <input type="hidden" name="pageId" value="<?php echo $m->get('pageId'); ?>" />
      <input type="hidden" name="zone" value="<?php echo $m->get('zone'); ?>" />
      <?php DisplayHelper::html( 'content', $module->getContent() ); ?>
      <input type="submit" name="doit" value="Guardar" />
    </form>
  </body>
</html>